The present invention generally relates to communications systems, e.g., wired and wireless systems such as terrestrial broadcast, cellular, Wireless-Fidelity (Wi-Fi), satellite, etc.
When a compressed video bit stream is delivered through an error-prone communication channel, such as a wireless network, certain parts of the bit stream may be corrupted or lost. When such erroneous bit streams reach the receiver and are decoded by a video decoder, the playback quality can be severely impacted. Source error resiliency coding is a technique used to address the problem.
In a video broadcast/multicast system, one compressed video bit stream is usually delivered to a group of users simultaneously in a designated time period often called a session. Due to the predictive nature of video coding, random access to a bit stream is only available at certain random access points inside the bit stream, so that correct decoding is only possible starting from these random access points. Since random access points generally have lower compression efficiency, there are only a limited number of such points within a bit stream. As a result, when a user tunes his receiver to a channel and joins in a session, he has to wait for the next available random access point in the received bit stream in order to have correct decoding started, which causes a delay in playback of video content. Such a delay is called tune-in delay, and it is an important factor that affects user experience of the system.
In a video delivery system, several compressed video bit streams are often delivered to the end users sharing a common transmission medium, where each video bit stream corresponds to a program channel. Similar to the previous case, when a user switches from one channel to another, he has to wait for the next available random access point in the received bit stream from the channel, in order to start decoding correctly. Such a delay is called channel-change delay, and is another important factor affecting user experience in such systems.
An advantage of inserted random access points is to improve error resiliency of a compressed video bit stream from a video coding point of view. For example, a random access point that is inserted into a bit stream periodically resets the decoder and completely stop error propagation, which improves the robustness of the bit stream against errors.
For example, consider the H.264/AVC video compression standard (e.g., see, ITU-T Recommendation H.264: “Advanced video coding for generic audiovisual services”, ISO/IEC 14496-10 (2005): “Information Technology—Coding of audio-visual objects Part 10: Advanced Video Coding”), random access points (also referred to as switching enabling points) can be implemented by coding methods including IDR (Instantaneous Decoder Refresh) slices, intra-coded macro blocks (MBs) and SI (switching I) slices.
With respect to an IDR slice, the IDR slice contains only intra-coded MBs, which does not depend on any previous slice for correct decoding. An IDR slice also resets the decoding picture buffer at the decoder so that the decoding of following slices is independent of any slice before the IDR slice. Since correct decoding is immediately available after an IDR slice, it is also called an instantaneous random access point. By contrast, gradual random access operation can be realized based on intra-coded MBs. For a number of consecutive predictive pictures, intra-coded MBs are methodically encoded so that after decoding these pictures, each MB in the following picture has an intra-coded co-located counterpart in one of pictures. Therefore, the decoding of the picture does not depend on any other slice before the set of pictures. Similarly, SI slices enable switching between different bit streams by embedding this type of specially encoded slices into a bit stream. Unfortunately, in H.264/AVC, a common disadvantage of the IDR slice or the SI slice is the loss of coding efficiency since they are usually larger than a compressed picture of other types. Commonly, a significant amount of bit rate overhead has to be paid for embedding switching points.
Similarly, random access points are also used in Scalable Video Coding (SVC). In SVC a dependency representation may consist of a number of layer representations, and an access unit consists of all the dependency representations corresponding to one frame number (e.g., see Y-K. Wang, M. Hannuksela, S. Pateux, A. Eleftheriadis, and S. Wenger, “System and transport interface of SVC”, IEEE Trans. Circuits and Systems for Video Technology, vol. 17, no. 9, September 2007, pp. 1149-1163; and H. Schwarz, D. Marpe and T. Wiegand, “Overview of the scalable video coding extension of the H.264/AVC standard”, IEEE Trans. Circuits and Systems for Video Technology, vol. 17, no. 9, September 2007, pp. 1103-1120).
A common method for SVC to embed a random access point is to code an access unit entirely using IDR slices. In particular, when a higher layer representation (a layer representation with larger dependency_id value) is encoded in an IDR picture, all the lower layer representation(s) (layer representation(s) with smaller dependency_id value(s)) are encoded also in IDR picture(s). This is because when the lower layer representations are coded in IDR pictures, the higher layer representation can potentially utilize better inter-layer predication, when it is encoded in the IDR picture itself. An example is shown in FIG. 1. The SVC coded signal of FIG. 1 has two dependency representations, and each dependency representation has one layer representation. In particular, the base layer is associated with D=0 and an enhancement layer is associated with D=1 (the value of “D” also referred to in the art as a “dependency_id”). FIG. 1 illustrates nine access units, which occur in frames of the SVC signal. As illustrated by dashed box 10, access unit 1 comprises an IDR slice for the first layer (D=1) and an IDR slice for the base layer (D=0). The following access unit, comprises two predicted (P) slices. It can be observed from FIG. 1 that access units 1, 5 and 9 only comprise IDR slices. As such, random access can occur at these access units. However, like H.264/AVC case, each access unit encoded with IDR slices decreases SVC coding efficiency since an IDR slice is usually larger than a compressed picture of other types.